home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / MEDICAL / 2608A.ZIP / GP.ZIP / CHKDIAB.SRC < prev    next >
Text File  |  1990-11-03  |  26KB  |  1,094 lines

  1. ;\|
  2. ;CHKDIAB.SRC     Translated from CHKDIAB.EDT by Roger Mathew's EDT2SRC Ver 4.11
  3. ;CHECK_UP 12:00:41 PM   3/ 6/90   |
  4. DO_DEFINES:
  5. define(CTR2|N|1||)
  6. define(CTR6|N|2||)
  7. define(silly|a|1||)
  8. define(fld_lctr|N|2||)
  9. define(ISITCLIN|A|1||)
  10. define(FLAG|A|1||)
  11. define(YES.NO|A|1||)
  12. define(CTR3|N|1||)
  13. define(MEM_NAME_CHK|A|27||)
  14. define(PROC4|A|1||)
  15. define(REF_CTR|N|2||)
  16. define(MEM_DOC2|N|1||)
  17. define(CON_CTR|N|2||)
  18. define(EXTRAS|N|3||)
  19. define(CON_NUM|N|3||)
  20. define(CLIN_NUM|N|3||)
  21. define(EMERG_NUM|N|3||)
  22. define(ISIT_EMER|A|1||)
  23. define(MEM_DOC|A|1||)
  24. define(NY|A|1||)
  25. define(AGE|N|2||)
  26. define(BP_DROP|N|2||)
  27. define(MEM_CTR|N|1||)
  28. define(FBS_ADD|N|5|2|)
  29. define(MEM_BP_AGE|N|3||)
  30. define(AOD|A|1||15)
  31. define(TD|S|8||)
  32. define(MN|A|30||15)
  33. define(DO|A|8||15)
  34. define(QU|A|10||15)
  35. define(DS|A|30||15)
  36. define(QTY|N|3||15)
  37. define(ISN|N|3||15)
  38. define(CTR|N|2||)
  39. define(CTR2|N|2||)
  40. define(LNE.LNGTH|N|2||)
  41. define(OK|A|1||)
  42. define(LNE.LN2|N|2||)
  43. define(NUM.MSG|N|2||)
  44. define(MESSAGE|A|78||15)
  45. define(ENT.MASK|A|10||)
  46. define(LLC|N|2||)
  47. define(WD|N|2||)
  48. define(HT|N|2||)
  49. define(MCNTR|N|5||)
  50. define(MCNTR2|N|5||)
  51. define(MCNTR3|N|5||)
  52. define(MCNTR4|N|5||)
  53. define(MEM_DIAB|A|1||)
  54. define(MEM_NEW|A|1||)
  55. define(MEM_BP|A|1||)
  56. define(MEM_THY|A|1||)
  57. define(MEM_OLD|A|1||)
  58. define(MEM_RECD|S|8||)
  59. define(MEM_RECT|S|8||)
  60. define(MEM_RECB|S|8||)
  61. OPEN_FILES:
  62. open(PATIENT||0|EXIT)
  63. open(DIABETIC||1|EXIT)
  64. open(RP||0|)
  65. open(RECALLS||0|)
  66. open(REFER||0|EXIT)
  67. open(PROCEDE||1|EXIT)
  68. open(MEMORY||0|EXIT)
  69. open(GPSETUP||0|EXIT)
  70. STARTCHK:
  71. trap(S|G|SAVE_RECS)
  72. trap(D|I)
  73. trap(C|G|CLR_RECS)
  74. trap(Q|G|EXIT)
  75. trap(J|I)
  76. MOUNT_SCRS:
  77. mount(SCREEN2|S||)
  78. date(TD|G)
  79. START_UP:
  80. trap(J|I)
  81. MEM_DIAB = ("Y")
  82. PAT.NAME:
  83. clrlne(1|22)
  84. enter(PATIENT.NAME||||||||)
  85. find(G|PATIENT.NAME|PAT.NAME|)
  86. DIAB_REF = (RECORD.NUMBER)
  87. find(M|DIAB_REF|NO_DIABX|)
  88. NO_DIAB:
  89. goto STARTALL
  90. NO_DIAB2:
  91. gosub GET_AGE
  92. trap(%|I)
  93. trap(U|I)
  94. saves(10)
  95. window(20|12|2|35)
  96. ISITCLIN = ("")
  97. pmsg("Is this a clinic or update?"|1|1|N|N|S|)
  98. enter(ISITCLIN|"YN"|||Y|Y|N|30|1|N)
  99. if ISITCLIN = ("Y") then CHECK_DATE = (TD)
  100. trap(%|D)
  101. trap(U|D)
  102. redsp(10)
  103. MEM_CTR = (4)
  104. enter(CHECK_DATE||||N|Y|N|||N)
  105. enter(CHECK_OP||||Y|Y|N|||N)
  106. if CHECK_OP = ("") reent
  107. enter(CHK_DOC|"1234"|||N|Y|N|||N)
  108. enter(DOC_BP1|"1234567890"|||N|Y|N|||N)
  109. enter(DOC_BP2|"1234567890"|||N|Y|N|||N)
  110. if DOC_BP1 > (0) then MEM_BP = ("Y")
  111. NO_DIAB3:
  112. FLAG = ("X")
  113. trap(J|G|RUN_MEMO)
  114. enter(SMOK||SMOK_HLP||N|Y|N|||N)
  115. if SMOK > (0) gosub SMOK_MSG
  116. enter(EXERCISE||EX_HLP||N|Y|N|||N)
  117. enter(ALCOHOL||ALC_HLP||N|Y|N|||N)
  118. enter(ANGINA||ANG_HLP||N|Y|N|||N)
  119. enter(DIET|"GBP "|DIET_HLP||Y|Y|N|||N)
  120. enter(WT1||||N|Y|N|||N)
  121. enter(WT2||||N|Y|N|||N)
  122. IDEAL_WT = (WT2-81*0.85)
  123. if WT1 > (IDEAL_WT) gosub WEIGHT
  124. enter(PROT|" T+"|||N|N|N|||N)
  125. if PROT => ("+") gosub REF_PROT
  126. enter(SUG||SUG_HLP||N|N|N|||N)
  127. if SUG > (0.25) gosub REF_SUG
  128. enter(BP_CHECK_NUM|" 123"|||N|Y|N|||N)
  129. enter(BP1||||N|Y|N|||N)
  130. enter(BP2||||N|Y|N|||N)
  131. enter(BP1S||BPST_HLP||N|Y|N|||N)
  132. gosub BP_CHECK
  133. enter(PULSE||||N|Y|N|||N)
  134. enter(REG|" YN"|REG_HLP||Y|Y|N|||N)
  135. if REG = ("N") then enter(APEX||||N|Y|N|||N)
  136. enter(FOOTL|" NY"|FOOT_HLP||Y|Y|N|||N)
  137. enter(FOOTR|" NY"|FOOT_HLP||Y|Y|N|||N)
  138. enter(SENSL|" NY"|SENS_HLP||Y|Y|N|||N)
  139. enter(SENSR|" NY"|SENS_HLP||Y|Y|N|||N)
  140. enter(VISL||VIS_HLP||N|Y|N|||N)
  141. enter(VISR||VIS_HLP||N|Y|N|||N)
  142. enter(RETL||RET_HLP||N|Y|N|||N)
  143. enter(RETR||RET_HLP||N|Y|N|||N)
  144. enter(OEDEMA|" 123"|OED_HLP||N|Y|N|||N)
  145. enter(FEV||||N|Y|N|||N)
  146. enter(FBS_CHECK_NUM|" 12"|||N|Y|N|||N)
  147. enter(FBS||||N|Y|N|||N)
  148. enter(FBS2||||N|Y|N|||N)
  149. gosub REF_FBS
  150. enter(HBA||||N|Y|N|||N)
  151. gosub REF_HBA
  152. enter(CHOL||||N|Y|N|||N)
  153. enter(COMMENT1||||Y|Y|N|||N)
  154. enter(COMMENT2||||Y|Y|N|||N)
  155. gosub DRUGSCH
  156. enter(DRUGS_CHECKED|"NY"|||Y|Y|N|||N)
  157. enter(REF_CHECK|"NY"|||Y|Y|N|||N)
  158. NEXT_CHECK = (CHECK_DATE+186)
  159. enter(NEXT_CHECK||||N|Y|N|||N)
  160. YES.NO = ("")
  161. enter(YES.NO|"YN"|||Y|Y|N|||N)
  162. if YES.NO = ("Y") gosub PRINT
  163. SAVE_RECS:
  164. if RECORD.NUMBER = (0) goto PAT.NAME
  165. SAVE_DONE:
  166. COD.REF = (RECORD.NUMBER)
  167. find(M|COD.REF|NOCOD|)
  168. COD.D[4] = (NEXT_CHECK)
  169. COD.D[7] = (0)
  170. save(RECALLS|N|Y)
  171. DIAB_REF = (RECORD.NUMBER)
  172. CHECK_TYPE = (1)
  173. save(DIABETIC|N|Y)
  174. find(M|RECORD.NUMBER|EXIT|)
  175. save(PATIENT|N|Y)
  176. if FLAG = ("Y") then run("patrec")
  177. FLAG = ("")
  178. STARTX:
  179. MEM_DIAB = ("")
  180. MEM_NEW = ("")
  181. MEM_BP = ("")
  182. MEM_THY = ("")
  183. MEM_CTR = (0)
  184. MEM_RECD = (0)
  185. MEM_NAME_CHK = ("")
  186. MEM_RECT = (0)
  187. MEM_CTR = (0)
  188. MEM_OLD = ("")
  189. MEM_RECB = (0)
  190. AGE = (0)
  191. BP_DROP = (0)
  192. FBS_ADD = (0)
  193. MEM_BP_AGE = (0)
  194. for(CTR|12|23|1)
  195. {
  196. clrlne(1|CTR)
  197. }
  198. pmsg("F1 - Help  F2 - Memo  [Ctrl-Y]- Print"|1|24|N|N|S|)
  199. clr(PATIENT|B)
  200. goto START_UP
  201. DEL_RECS:
  202. del(DIABETIC|Y|)
  203. clr(PATIENT|B)
  204. goto STARTX
  205. CLR_RECS:
  206. clr(PATIENT|B)
  207. clr(DIABETIC|B)
  208. goto STARTX
  209. EXIT:
  210. if FLAG = ("X") do
  211. {
  212. FLAG = ("Y")
  213. goto SAVE_DONE
  214. }
  215. run("patrec")
  216. PRT.MSG:
  217. LNE.LNGTH = (0)
  218. for(MCNTR|1|NUM.MSG|1)
  219. {
  220. LNE.LN2 =siz(A|MESSAGE[MCNTR])
  221. if LNE.LN2 > (LNE.LNGTH) then LNE.LNGTH = (LNE.LN2)
  222. }
  223. NUM.MSG = (NUM.MSG + 1)
  224. if LNE.LNGTH < (26) then LNE.LNGTH = (26)
  225. LNE.LNGTH = (LNE.LNGTH + 4)
  226. LLC = (40 - (LNE.LNGTH / 2))
  227. HT = (NUM.MSG + 3)
  228. WD = (LNE.LNGTH + 1)
  229. saves(1)
  230. window(LLC|24|HT|WD)
  231. NUM.MSG = (NUM.MSG - 1)
  232. pmsg(""||||||)
  233. for(MCNTR|1|NUM.MSG|1)
  234. {
  235. pmsg(MESSAGE[MCNTR]|3||N|N|S|)
  236. }
  237. pmsg("Press any key to continue"|3||Y|N|S|)
  238. redsp(1)
  239. ret
  240. NO_DIABX:
  241. clr(DIABETIC|B)
  242. MESSAGE[1] = ("NO CHECK UP RECORD FOR THIS PATIENT")
  243. NUM.MSG = (1)
  244. gosub PRT.MSG
  245. goto NO_DIAB
  246. SEEALL:
  247. STARTALL1:
  248. STARTALL:
  249. if RECORD.NUMBER = (0) goto ENDIT
  250. COD.REF = (RECORD.NUMBER)
  251. find(M|COD.REF|NEXTALL2|)
  252. MEM_RECD = (COD.D[4])
  253. MEM_RECT = (COD.D[6])
  254. MEM_RECB = (COD.D[9])
  255. NEXTALL2:
  256. RP.REF = (RECORD.NUMBER)
  257. find(M|RP.REF|ENDITX|)
  258. CTR = (1)
  259. TESTALL:
  260. AOD[CTR] = (AUTO.ON.DEMAND)
  261. MN[CTR] = (MEDICATION)
  262. DO[CTR] = (DOSE)
  263. QU[CTR] = (QUANTITY)
  264. DS[CTR] = (DIRECTIONS)
  265. QTY[CTR] = (RP.DISP.QTY)
  266. ISN[CTR] = (ISSUE.NO)
  267. trim(MN[CTR]|T)
  268. trim(QU[CTR]|T)
  269. just(QU[CTR]|L)
  270. trim(DO[CTR]|T)
  271. just(DO[CTR]|L)
  272. trim(DS[CTR]|T)
  273. just(DS[CTR]|L)
  274. CTR2 = (CTR+11)
  275. if CTR2 = (23) goto ENDIT
  276. pmsg(AOD[CTR];" ";MN[CTR];" ";DO[CTR];" ";QU[CTR];" ";DS[CTR];" ";QTY[CTR];" ";ISN[CTR]|1|CTR2|N|N|S|)
  277. silly = ("")
  278. find(N|RP|ENDIT|)
  279. if RP.REF <> (RECORD.NUMBER) goto ENDIT
  280. CTR = (CTR+1)
  281. goto TESTALL
  282. CLEARXALL:
  283. clr(RP|B)
  284. clr(RECALLS|B)
  285. clrmem(AOD|15)
  286. clrmem(MN|15)
  287. clrmem(DO|15)
  288. clrmem(QU|15)
  289. clrmem(DS|15)
  290. clrmem(QTY|15)
  291. clrmem(ISN|15)
  292. ret
  293. ENDIT:
  294. find(M|RECORD.NUMBER|PAT.NAME|)
  295. DIAB_REF = (RECORD.NUMBER)
  296. find(M|DIAB_REF|NO_DIAB2|)
  297. goto NO_DIAB2
  298. ENDITX:
  299. MESSAGE[1] = ("NO DRUGS ON REPEAT")
  300. NUM.MSG = (1)
  301. gosub PRT.MSG
  302. goto ENDIT
  303. GET_AGE:
  304. AGE = (TD-DATE.OF.BIRTH/365)
  305. ret
  306. BP_CHECK:
  307. if MEM_BP = ("Y") do
  308. {
  309. if BP_CHECK_NUM => (2) do
  310. {
  311. if BP1 > (DOC_BP1) gosub REFER_BP
  312. if BP2 > (DOC_BP2) gosub REFER_BP
  313. BP_DROP = (BP1-BP1S)
  314. if BP_DROP > (20) gosub REFER_BP
  315. }
  316. ret
  317. }
  318. else
  319. {
  320. if BP_CHECK_NUM = (2) do
  321. {
  322. if BP1 > (AGE+110) gosub REFER_BP
  323. }
  324. if BP2 > (105) gosub REFER_BP
  325. BP_DROP = (BP1-BP1S)
  326. if BP_DROP > (20) gosub REFER_BP
  327. }
  328. ret
  329. REF_FBS:
  330. if FBS_CHECK_NUM = (2) do
  331. {
  332. FBS_ADD = (FBS+FBS2)
  333. if FBS_ADD > (14) gosub FBS_MSG
  334. }
  335. ret
  336. REF_HBA:
  337. if HBA > (8) gosub HBA_MSG
  338. ret
  339. SMOK_HLP:
  340. MESSAGE[1] = ("Number per day eg 16")
  341. NUM.MSG = (1)
  342. gosub PRT.MSG
  343. ret
  344. SMOK_MSG:
  345. MESSAGE[1] = ("There is a risk of cancer,heart disease,gangrene,and bronchitis")
  346. NUM.MSG = (1)
  347. gosub PRT.MSG
  348. ret
  349. REF_PROT:
  350. MESSAGE[1] = ("If there is more than a trace -send sample for orgs and sens.")
  351. MESSAGE[2] = ("Refer to Dr if protein persists etc")
  352. NUM.MSG = (2)
  353. gosub PRT.MSG
  354. ret
  355. SUG_HLP:
  356. MESSAGE[1] = ("Enter sugar in urine as a decimal eg 1/4 = .25")
  357. NUM.MSG = (1)
  358. gosub PRT.MSG
  359. ret
  360. REF_SUG:
  361. MESSAGE[1] = ("Do a blood sugar.If high refer to Dr.")
  362. MESSAGE[2] = ("If patient is a diabetic refer to Dr if more than a third of tests over .25")
  363. NUM.MSG = (2)
  364. gosub PRT.MSG
  365. ret
  366. REG_HLP:
  367. MESSAGE[1] = ("Enter a Y if regular or a N if not. Do apical rate if N")
  368. NUM.MSG = (1)
  369. gosub PRT.MSG
  370. ret
  371. REFER_BP:
  372. MESSAGE[1] = ("There is a definate BP problem here - refer to Dr.")
  373. NUM.MSG = (1)
  374. REF_CHECK = ("Y")
  375. gosub PRT.MSG
  376. ret
  377. BPST_HLP:
  378. MESSAGE[1] = ("Enter standing systolic - It should not drop more than 20")
  379. NUM.MSG = (1)
  380. gosub PRT.MSG
  381. ret
  382. DIET_HLP:
  383. MESSAGE[1] = ("G = Good diet B = Bad diet P = Poor")
  384. NUM.MSG = (1)
  385. gosub PRT.MSG
  386. ret
  387. EX_HLP:
  388. MESSAGE[1] = ("Enter a number for hours per week exercise")
  389. NUM.MSG = (1)
  390. gosub PRT.MSG
  391. ret
  392. FBS_MSG:
  393. MESSAGE[1] = ("These are too high - refer to Dr.")
  394. NUM.MSG = (1)
  395. gosub PRT.MSG
  396. REF_CHECK = ("Y")
  397. ret
  398. HBA_MSG:
  399. MESSAGE[1] = ("Poor control here - refer to Dr.")
  400. NUM.MSG = (1)
  401. gosub PRT.MSG
  402. REF_CHECK = ("Y")
  403. ret
  404. VIS_HLP:
  405. MESSAGE[1] = ("Use Snellen test type eg 6 ")
  406. NUM.MSG = (1)
  407. gosub PRT.MSG
  408. ret
  409. RET_HLP:
  410. MESSAGE[1] = ("Retinopathy 0,1,2,3,4,5 ")
  411. NUM.MSG = (1)
  412. gosub PRT.MSG
  413. ret
  414. FOOT_HLP:
  415. MESSAGE[1] = ("Y = Pulses present N = No pulses")
  416. NUM.MSG = (1)
  417. gosub PRT.MSG
  418. ret
  419. SENS_HLP:
  420. MESSAGE[1] = ("Y = Tuning fork sensation present N = Not present")
  421. NUM.MSG = (1)
  422. gosub PRT.MSG
  423. ret
  424. DRUGSCH:
  425. MESSAGE[1] = ("NOW CHECK PATIENTS DRUG THERAPY IS CORRECT")
  426. NUM.MSG = (1)
  427. gosub PRT.MSG
  428. mount(DRUGSCR|S)
  429. RP.REF = (RECORD.NUMBER)
  430. find(M|RP.REF|NOSCR|)
  431. CTR = (17)
  432. NEXTRPS:
  433. trim(MEDICATION|T)
  434. if CTR = (29) do
  435. {
  436. pmsg("There are more drugs"|65|20|N|N|D|)
  437. goto NOSCR
  438. }
  439. if CTR => (23) do
  440. {
  441. CTR6 = (CTR-6)
  442. pmsg(MEDICATION|31|CTR6|N|N|D|)
  443. }
  444. else
  445. {
  446. pmsg(MEDICATION|1|CTR|N|N|D|)
  447. }
  448. CTR = (CTR+1)
  449. find(N|RP|NOSCR|)
  450. if RP.REF <> (RECORD.NUMBER) goto NOSCR
  451. goto NEXTRPS
  452. NOSCR:
  453. enter(COMMENT1|||NOSCR|Y|Y|N|||N)
  454. enter(COMMENT2||||Y|Y|N|||N)
  455. mount(SCREEN2|S)
  456. ret
  457. NOCOD:
  458. COD.PAT.NAME = (PATIENT.NAME)
  459. COD.REF = (RECORD.NUMBER)
  460. save(RECALLS|N|N)
  461. find(M|COD.REF||)
  462. goto SAVE_RECS
  463. RUN_MEMO:
  464. goto RUN_MEMOX
  465. RUN_MEMOX:
  466. trap(J|G|EXIT_MEM)
  467. trap(S|G|SAVE_MEMO)
  468. trap(D|I)
  469. trap(C|I)
  470. trap(Q|G|EXIT_MEM)
  471. trap(L|G|EXIT_MEM)
  472. MOUNT:
  473. mount(NEW|S||)
  474. START:
  475. enter(PATIENT.NAME||||Y|Y|N|||N)
  476. find(G|PATIENT.NAME|START|)
  477. PROC_REF = (RECORD.NUMBER)
  478. find(M|PROC_REF|START2CL|)
  479. NY = ("")
  480. pmsg("DO YOU WANT TO UPDATE THE MEMOS FIRST:"|10|20|N|N|S|)
  481. enter(NY|"YN"|||Y|Y|N|50|20|N)
  482. if NY = ("Y") goto UPMEMO
  483. clrlne(1|20)
  484. START2:
  485. gosub LINE
  486. if CTR2 = (0) then CTR2 = (1)
  487. SATRT3:
  488. MEM_DOC = ("")
  489. for(CTR|CTR2|6|1)
  490. {
  491. PROC_DATE[CTR] = (TD)
  492. PROC_UP = (TD)
  493. enter(PROC_DATE[CTR]|||SATRT3|N|N|N|||N)
  494. enter(PROC[CTR]||||Y|Y|N|||N)
  495. enter(PROC_DOC[CTR]|"12345"|||Y|Y|N|||N)
  496. MEM_DOC = (PROC_DOC[CTR])
  497. enter(PROC_OP[CTR]||||Y|Y|N|||N)
  498. if PROC_OP[CTR] = ("") reent
  499. if PROC_EX[CTR] = ("") do
  500. {
  501. PROC_REF = (RECORD.NUMBER)
  502. PROC4 =mid(PROC[CTR]|1|1|)
  503. if PROC4 = ("*") do
  504. {
  505. PROC_EX[CTR] = ("X")
  506. gosub STARTAGAIN
  507. save(PROCEDE|N|N)
  508. find(M|PROC_REF||)
  509. }
  510. enter(PROC_DONE[1]|" YNSCRO"|||Y|Y|N|||N)
  511. enter(PROC_DONE[2]|" YNSCRO"|||Y|Y|N|||N)
  512. enter(PROC_DONE[3]|" YNSCRO"|||Y|Y|N|||N)
  513. enter(PROC_DONE[4]|" YNSCRO"|||Y|Y|N|||N)
  514. enter(PROC_DONE[5]|" YNSCRO"|||Y|Y|N|||N)
  515. enter(PROC_DONE[6]|" YNSCRO"|||Y|Y|N|||N)
  516. }
  517. }
  518. gosub LINE
  519. for(CTR|1|6|1)
  520. {
  521. if PROC[CTR] = ("") then PROC_DATE[CTR] = (0)
  522. }
  523. goto SATRT3
  524. SAVE_MEMO:
  525. for(CTR|1|6|1)
  526. {
  527. if PROC[1] = ("") do
  528. {
  529. clr(PROCEDE|B)
  530. goto START
  531. }
  532. if PROC[CTR] = ("") do
  533. {
  534. PROC_DATE[CTR] = (0)
  535. PROC_OP[CTR] = ("")
  536. PROC_DOC[CTR] = ("")
  537. PROC_DONE[CTR] = ("")
  538. }
  539. }
  540. if PROC_REF = (0) goto START
  541. PROC_REF = (RECORD.NUMBER)
  542. if PROC_REF = (0) goto START
  543. save(PROCEDE|Y|Y|)
  544. MEM_DOC = ("")
  545. goto START
  546. EXIT_MEM:
  547. if PROC[1] = ("") goto RUNPATREC
  548. for(CTR|1|6|1)
  549. {
  550. if PROC[CTR] = ("") do
  551. {
  552. PROC_DATE[CTR] = (0)
  553. PROC_OP[CTR] = ("")
  554. PROC_DOC[CTR] = ("")
  555. PROC_DONE[CTR] = ("")
  556. }
  557. }
  558. if PROC_REF > (0) then save(PROCEDE|N|Y)
  559. RUNPATREC:
  560. trap(S|G|SAVE_RECS)
  561. trap(D|I)
  562. trap(C|G|CLR_RECS)
  563. trap(Q|G|EXIT)
  564. trap(J|G|RUN_MEMO)
  565. mount(SCREEN2|S)
  566. gosub STARTALLXX
  567. goto PAT.NAME2
  568. LINE:
  569. for(CTR2|1|6|1)
  570. {
  571. if PROC[CTR2] = ("") do
  572. {
  573. if CTR2 = (6) do
  574. {
  575. pops
  576. goto SATRT3
  577. }
  578. ret
  579. }
  580. }
  581. CTR = (2)
  582. if PROC_DATE[1] = (TD) do
  583. {
  584. for(CTR3|1|6|1)
  585. {
  586. enter(PROC_DONE[CTR3]|" Y"|||Y|Y|N|||N)
  587. }
  588. pops
  589. goto SAVE_MEMO
  590. }
  591. for(CTR2|1|5|1)
  592. {
  593. PROC[CTR2] = (PROC[CTR])
  594. PROC_DATE[CTR2] = (PROC_DATE[CTR])
  595. PROC_OP[CTR2] = (PROC_OP[CTR])
  596. PROC_DOC[CTR2] = (PROC_DOC[CTR])
  597. PROC_DONE[CTR2] = (PROC_DONE[CTR])
  598. CTR = (CTR+1)
  599. }
  600. PROC[6] = ("")
  601. PROC_DATE[6] = (0)
  602. PROC_OP[6] = ("")
  603. PROC_DOC[6] = ("")
  604. PROC_DONE[6] = ("")
  605. PROC_EX[6] = ("")
  606. goto LINE
  607. ret
  608. UPARROW:
  609. CTR2 = (CTR2-1)
  610. CTR = (CTR2)
  611. ret
  612. STARTAGAIN:
  613. trap(%|I)
  614. trap(J|I)
  615. trap(Q|G|EXITX)
  616. trap(U|I)
  617. trap(C|I)
  618. trap(S|I)
  619. saves(1)
  620. window(20|15|5|40)
  621. trap(Q|G|EXITX)
  622. find(B|HEADING||)
  623. pmsg("IS IT EMERGENCY:"|1|1|N|N|S|)
  624. enter(ISIT_EMER|"YN"|||Y|Y|N|20|1|N)
  625. if ISIT_EMER = ("Y") goto SCR2
  626. gosub SCREEN2
  627. CLIN_NUM = (CLIN_NUM)
  628. pmsg("ENTER SPECIALTY:"|1|2|N|N|S|)
  629. enter(CLIN_NUM||||N|Y|N|20|2|N)
  630. ADDER:
  631. REF_COD = (MEM_DOC)
  632. find(M|REF_COD|EXIT|)
  633. if ISIT_EMER <> ("Y") do
  634. {
  635. CLIN_REF[CLIN_NUM] = (CLIN_REF[CLIN_NUM]+1)
  636. }
  637. else
  638. {
  639. EMERG_REF[EMERG_NUM] = (EMERG_REF[EMERG_NUM]+1)
  640. }
  641. save(REFER|N|Y)
  642. CLIN_NUM = (0)
  643. CON_NUM = (0)
  644. EMERG_NUM = (0)
  645. ISIT_EMER = ("")1
  646. redsp(1)
  647. trap(%|D)
  648. trap(J|G|EXIT_MEM)
  649. trap(U|D)
  650. trap(Q|G|EXIT)
  651. ret
  652. SCREEN2:
  653. saves(2)
  654. window(1|25|24|78)
  655. for(REF_CTR|1|22|1)
  656. {
  657. pmsg(@R;REF_CTR;@N;" ";@R;CLINICS[REF_CTR];@N|1|REF_CTR|N|N|S|)
  658. }
  659. CON_CTR = (REF_CTR+1)
  660. for(REF_CTR|1|22|1)
  661. {
  662. pmsg(@R;CON_CTR;@N;" ";@R;CLINICS[CON_CTR];@N|25|REF_CTR|N|N|S|)
  663. CON_CTR = (CON_CTR+1)
  664. }
  665. pmsg("ENTER NUMBER:"|60|12|N|N|S|)
  666. enter(CLIN_NUM||||N|Y|N|65|13|N)
  667. if CLIN_NUM = (0) reent
  668. if CLIN_NUM > (44) reent
  669. redsp(2)
  670. ret
  671. SCREEN3:
  672. saves(2)
  673. window(1|25|24|78)
  674. for(REF_CTR|1|22|1)
  675. {
  676. pmsg(@R;REF_CTR;@N;" ";@R;CLINICS[REF_CTR];@N|1|REF_CTR|N|N|S|)
  677. }
  678. CON_CTR = (REF_CTR+1)
  679. for(REF_CTR|1|22|1)
  680. {
  681. pmsg(@R;CON_CTR;@N;" ";@R;CLINICS[CON_CTR];@N|25|REF_CTR|N|N|S|)
  682. CON_CTR = (CON_CTR+1)
  683. }
  684. pmsg("ENTER NUMBER:"|60|12|N|N|S|)
  685. enter(EMERG_NUM||||N|Y|N|65|13|N)
  686. if EMERG_NUM = (0) reent
  687. if EMERG_NUM > (44) reent
  688. redsp(2)
  689. ret
  690. SCR2:
  691. gosub SCREEN3
  692. EMERG_NUM = (EMERG_NUM)
  693. pmsg("ENTER SPECIALTY EMERGENCY:"|1|3|N|N|S|)
  694. enter(EMERG_NUM||||N|Y|N|30|3|N)
  695. goto ADDER
  696. EXITX:
  697. goto STARTCHK
  698. UPMEMO:
  699. enter(PROC_DONE[1]|" YNSCRO"|||Y|Y|N|||N)
  700. enter(PROC_DONE[2]|" YNSCRO"|||Y|Y|N|||N)
  701. enter(PROC_DONE[3]|" YNSCRO"|||Y|Y|N|||N)
  702. enter(PROC_DONE[4]|" YNSCRO"|||Y|Y|N|||N)
  703. enter(PROC_DONE[5]|" YNSCRO"|||Y|Y|N|||N)
  704. enter(PROC_DONE[6]|" YNSCRO"|||Y|Y|N|||N)
  705. clrlne(1|22)
  706. goto START2
  707. START2CL:
  708. clr(PROCEDE|B)
  709. goto START2
  710. PAT.NAME2:
  711. goto NO_DIAB3
  712. PRINT:
  713. mount(CHKREP|R|P)
  714. pset(128|24|24)
  715. pchr(P|1)
  716. pfmt(1|||N|N|)
  717. pfmt(2|||N|N|)
  718. pfmt(3|||N|N|)
  719. pfmt(4|||N|N|)
  720. pfmt(5|||N|N|)
  721. pfmt(6|||N|N|)
  722. pfmt(7|||N|N|)
  723. fld_lctr = (0)
  724. gosub PRINTRP
  725. fld_lctr = (fld_lctr+7)
  726. if REF_CHECK = ("Y") do
  727. {
  728. pmsg(%14;"               REFERRED TO DOCTOR"|||N|N|P|)
  729. fld_lctr = (fld_lctr+1)
  730. }
  731. CTR3 = (24-fld_lctr)
  732. if CTR3 <= (0) goto MOUNTAGAIN
  733. for(CTR2|1|CTR3|1)
  734. {
  735. pmsg(""|||N|N|P|)
  736. }
  737. MOUNTAGAIN:
  738. mount(SCREEN2|S)
  739. gosub STARTALLXX
  740. ret
  741. PRINTRP:
  742. RP.REF = (RECORD.NUMBER)
  743. find(M|RP.REF|RETPRINT|)
  744. CTR = (1)
  745. TESTALLX:
  746. if CTR = (12) goto RETPRINT
  747. fld_lctr = (fld_lctr+1)
  748. AOD[CTR] = (AUTO.ON.DEMAND)
  749. MN[CTR] = (MEDICATION)
  750. DO[CTR] = (DOSE)
  751. QU[CTR] = (QUANTITY)
  752. DS[CTR] = (DIRECTIONS)
  753. QTY[CTR] = (RP.DISP.QTY)
  754. ISN[CTR] = (ISSUE.NO)
  755. trim(MN[CTR]|T)
  756. trim(QU[CTR]|T)
  757. just(QU[CTR]|L)
  758. trim(DO[CTR]|T)
  759. just(DO[CTR]|L)
  760. trim(DS[CTR]|T)
  761. just(DS[CTR]|L)
  762. pmsg(AOD[CTR];" ";MN[CTR];" ";DO[CTR];" ";QU[CTR];" ";DS[CTR];" ";QTY[CTR];" ";ISN[CTR]|||N|N|P|)
  763. find(N|RP|RETPRINT|)
  764. if RP.REF <> (RECORD.NUMBER) goto RETPRINT
  765. CTR = (CTR+1)
  766. goto TESTALLX
  767. RETPRINT:
  768. PROC_REF = (RECORD.NUMBER)
  769. find(M|PROC_REF|RETPRINTX|)
  770. for(CTR2|1|6|1)
  771. {
  772. if PROC[CTR2] = ("") goto RETPRINTX
  773. pmsg(PROC_DATE[CTR2];"   ";PROC[CTR2];fld_lctr|||N|N|P|)
  774. CTR = (CTR+1)
  775. fld_lctr = (fld_lctr+1)
  776. }
  777. RETPRINTX:
  778. ret
  779. STARTALLXX:
  780. if RECORD.NUMBER = (0) goto ENDITXXX
  781. COD.REF = (RECORD.NUMBER)
  782. find(M|COD.REF|NEXTALL2XX|)
  783. MEM_RECD = (COD.D[4])
  784. MEM_RECT = (COD.D[6])
  785. MEM_RECB = (COD.D[9])
  786. NEXTALL2XX:
  787. RP.REF = (RECORD.NUMBER)
  788. find(M|RP.REF|ENDITXXX|)
  789. CTR = (1)
  790. TESTALLOP:
  791. AOD[CTR] = (AUTO.ON.DEMAND)
  792. MN[CTR] = (MEDICATION)
  793. DO[CTR] = (DOSE)
  794. QU[CTR] = (QUANTITY)
  795. DS[CTR] = (DIRECTIONS)
  796. QTY[CTR] = (RP.DISP.QTY)
  797. ISN[CTR] = (ISSUE.NO)
  798. trim(MN[CTR]|T)
  799. trim(QU[CTR]|T)
  800. just(QU[CTR]|L)
  801. trim(DO[CTR]|T)
  802. just(DO[CTR]|L)
  803. trim(DS[CTR]|T)
  804. just(DS[CTR]|L)
  805. CTR2 = (CTR+11)
  806. if CTR2 = (23) goto ENDITXXX
  807. pmsg(AOD[CTR];" ";MN[CTR];" ";DO[CTR];" ";QU[CTR];" ";DS[CTR];" ";QTY[CTR];" ";ISN[CTR]|1|CTR2|N|N|S|)
  808. silly = ("")
  809. find(N|RP|ENDITXXX|)
  810. if RP.REF <> (RECORD.NUMBER) goto ENDITXXX
  811. CTR = (CTR+1)
  812. goto TESTALLOP
  813. ENDITXXX:
  814. ret
  815. ALC_HLP:
  816. MESSAGE[1] = ("ENTER NUMBER OF PINTS A WEEK - 1 PUB GIN=1/2 PINT")
  817. NUM.MSG = (1)
  818. gosub PRT.MSG
  819. ret
  820. ANG_HLP:
  821. MESSAGE[1] = ("ENTER NUMBER OF ATTACKS PER WEEK")
  822. NUM.MSG = (1)
  823. gosub PRT.MSG
  824. ret
  825. WEIGHT:
  826. MESSAGE[1] = ("THERE IS AN OBESITY PROBLEM HERE")
  827. NUM.MSG = (1)
  828. gosub PRT.MSG
  829. ret
  830. OED_HLP:
  831. MESSAGE[1] = ("Graded from 0 to 3")
  832. NUM.MSG = (1)
  833. gosub PRT.MSG
  834. ret
  835. ;DRUG     05:01:17 PM  14/ 4/90   |
  836. \STNEW     
  837.  
  838.  
  839.  
  840.  
  841.  
  842.                                  PROCEDURE ENTRY
  843.           ╔═══════════════════════════════════════════════════════════════╗
  844.           ║ &                          <&                     <&         <║
  845.           ║                                                               ║
  846.           ║  Date             Procedure                        Dr Rec Done║
  847.           ║ &         &                                        & &    &   ║
  848.           ║ &         &                                        & &    &   ║
  849.           ║ &         &                                        & &    &   ║
  850.           ║ &         &                                        & &    &   ║
  851.           ║ &         &                                        & &    &   ║
  852.           ║ &         &                                        & &    &   ║
  853.           ╚═══════════════════════════════════════════════════════════════╝
  854.           Esc - Exit and Save V=1 G=2 P=3 N=4 T=5 * for clinic,xray,path
  855.               Y=DONE S=SEE DR C=COL.SCRPT R=REPEAT O=OTHER N=NORMAL
  856.  
  857.  
  858.  
  859.  
  860.  
  861. \
  862. PATIENT.NAME
  863. ADDRESS1
  864. DATE.OF.BIRTH
  865. PROC_DATE[1]
  866. PROC[1]
  867. PROC_DOC[1]
  868. PROC_OP[1]
  869. PROC_DONE[1]
  870. PROC_DATE[2]
  871. PROC[2]
  872. PROC_DOC[2]
  873. PROC_OP[2]
  874. PROC_DONE[2]
  875. PROC_DATE[3]
  876. PROC[3]
  877. PROC_DOC[3]
  878. PROC_OP[3]
  879. PROC_DONE[3]
  880. PROC_DATE[4]
  881. PROC[4]
  882. PROC_DOC[4]
  883. PROC_OP[4]
  884. PROC_DONE[4]
  885. PROC_DATE[5]
  886. PROC[5]
  887. PROC_DOC[5]
  888. PROC_OP[5]
  889. PROC_DONE[5]
  890. PROC_DATE[6]
  891. PROC[6]
  892. PROC_DOC[6]
  893. PROC_OP[6]
  894. PROC_DONE[6]
  895. \
  896. \R CHKREP  
  897. DIABETIC CLINIC CHECK FOR:  &                          :&          ON &        BY &      Dr.&
  898. ================================================================================================================
  899. Smokes :&    Exrcise:&    Alcohol:&    Angina:&    Diet:&   Weight:&        Height:&       Ideal Wt:&
  900. Protein:&      Sugar:&       Drs. Rec. BP:&  /&    BP Chk Num:&  BP:&  /&     Standing Sys:&     Pulse:&  /&/&
  901. Diabetic Inf:  Fbs1:&        Fbs2:&       Hba:&      Visl:&  Visr:&    Retl:&  Retr:&   Oedema:&   Fev:&
  902. Footl:&  Footr:&   Sensl:&   Sensr:&   Drugs Checked:&   Tsh:&      Next Check:&
  903. Nurses comments:&                              &                               Nurses Sig:
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945. \
  946. PATIENT.NAME
  947. DATE.OF.BIRTH
  948. TD
  949. CHECK_OP
  950. CHK_DOC
  951. SMOK
  952. EXERCISE
  953. ALCOHOL
  954. ANGINA
  955. DIET
  956. WT1
  957. WT2
  958. IDEAL_WT
  959. PROT
  960. SUG
  961. DOC_BP1
  962. DOC_BP2
  963. BP_CHECK_NUM
  964. BP1
  965. BP2
  966. BP1S
  967. PULSE
  968. REG
  969. APEX
  970. FBS
  971. FBS2
  972. HBA
  973. VISL
  974. VISR
  975. RETL
  976. RETR
  977. OEDEMA
  978. FEV
  979. FOOTL
  980. FOOTR
  981. SENSL
  982. SENSR
  983. DRUGS_CHECKED
  984. TSH
  985. NEXT_CHECK
  986. COMMENT1
  987. COMMENT2
  988. \
  989. \SSSCREEN2 
  990. DIABETIC CHECK  p p p p p p p p p p p p p p p p p p p p p p p p p p p  p p p p p p p p p p( p p) on  p p p p p p p p by  p p p p p p ================
  991. =============================================================== Dr.Num:p p  Rec.Date:p p p p p p p p p Drug
  992. s Checked:p p Refrd:p p Nxt Chk:p p p p p p p p p Prnt N/Y:p p ================================================
  993. =============================== Smokes:p p p     Wt:p p p p p p p    Dr.BP:p p p p/ p p p     Feet L:p p  R:p p   FBS
  994.  Num:p p          Exerc :p p p     Ht:p p p p p p p   Chk.No:p p           Sens L:p p  R:p p      FBS1:p p p p p p p     
  995. Alcoh :p p p     IW:p p p p p p p       BP:p p p p/ p p p      Vis L:p p p R:p p p     FBS2:p p p p p p p     Angina:p p p     Pr
  996. :p p p p p     St.Sys:p p p p          ret L:p p  R:p p       HBA:p p p p p p      Diet  :p p      Su:p p p p p      Pulse
  997. :p p p p:p p:p p p p   Oedema:p p  Fev:p p p p  CHOL:p p p p p p      Com1  :p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p     Com2:p p
  998.  p p p p p p p p p p p p p p p p p p p p p p p p p p p p p   ================================================================
  999. ==============                                                                                  
  1000.                                                                                                 
  1001.                                                                                                 
  1002.                                                                                                 
  1003.                                                                                                 
  1004.                                                                                                 
  1005.                                                                                                 
  1006.                                                                                                 
  1007.                                                                                                 
  1008.                                                                                                 
  1009.                                                                                                 
  1010. \
  1011. PATIENT.NAME       27 A 16 1
  1012. DATE.OF.BIRTH      10 D 44 1
  1013. AGE                 2 N 55 1
  1014. CHECK_DATE          8 S 62 1
  1015. CHECK_OP            6 A 74 1
  1016. CHK_DOC             1 N  8 3
  1017. COD.D            4  8 S 20 3
  1018. DRUGS_CHECKED       1 A 43 3
  1019. REF_CHECK           1 A 51 3
  1020. NEXT_CHECK          8 S 61 3
  1021. YES.NO              1 A 79 3
  1022. SMOK                2 N  8 5
  1023. WT1                 52N 18 5
  1024. DOC_BP1             3 N 34 5
  1025. DOC_BP2             3 N 38 5
  1026. FOOTL               1 A 53 5
  1027. FOOTR               1 A 58 5
  1028. FBS_CHECK_NUM       1 N 70 5
  1029. EXERCISE            2 N  8 6
  1030. WT2                 52N 18 6
  1031. BP_CHECK_NUM        1 N 34 6
  1032. SENSL               1 A 53 6
  1033. SENSR               1 A 58 6
  1034. FBS                 52N 70 6
  1035. ALCOHOL             2 N  8 7
  1036. IDEAL_WT            52N 18 7
  1037. BP1                 3 N 34 7
  1038. BP2                 3 N 38 7
  1039. VISL                2 N 53 7
  1040. VISR                2 N 58 7
  1041. FBS2                52N 70 7
  1042. ANGINA              2 N  8 8
  1043. PROT                4 A 18 8
  1044. BP1S                3 N 34 8
  1045. RETL                1 N 53 8
  1046. RETR                1 N 58 8
  1047. HBA                 42N 70 8
  1048. DIET                1 A  8 9
  1049. SUG                 32N 18 9
  1050. PULSE               3 N 34 9
  1051. REG                 1 A 38 9
  1052. APEX                3 N 40 9
  1053. OEDEMA              1 N 53 9
  1054. FEV                 3 N 60 9
  1055. CHOL                42N 70 9
  1056. COMMENT1           30 A  810
  1057. COMMENT2           30 A 4810
  1058. \
  1059. \STDRUGSCR 
  1060.               Digoxin      B-blockers    Diuretics  Tnt + Ca      Ace Inhib
  1061.    ╔═════════════════════════════════════════════════════════════════════════╗
  1062.    ║CHECK║PULSE + APEX    ║FEV          ║OEDEMA    ║ANGINA       ║           ║
  1063.    ║═════║════════════════║═════════════║══════════║═════════════║═══════════║
  1064.    ║TESTS║DIGOXIN LEVEL   ║U&E          ║U&E       ║NONE         ║U&E        ║
  1065.    ║     ║U & E           ║             ║URIC ACID ║             ║           ║
  1066.    ║     ║                ║             ║BS        ║             ║           ║
  1067.    ║═════║════════════════║═════════════║══════════║═════════════║═══════════║
  1068.    ║SIDE ║NAUSEA,VOMIT    ║COLD EXTREMS ║GOUT      ║HEADACHE     ║DROP       ║
  1069.    ║     ║DIZZY,COLOR VIS.║             ║          ║             ║DRY COUGH  ║
  1070.    ║═════║════════════════║═════════════║══════════║═════════════║═══════════║
  1071.    ║REFER║PULSE >120 <56  ║PULSE <50    ║DYSPNEA+  ║ANGINA WORSE ║           ║
  1072.    ║     ║                ║FEV 33% LESS ║          ║             ║           ║
  1073.    ╚═════════════════════════════════════════════════════════════════════════╝
  1074.    Pulse:&  /&/&   Fev:&   Oed:&  Angina:&   com:&
  1075.                                              com:&
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084. \
  1085. PULSE
  1086. REG
  1087. APEX
  1088. FEV
  1089. OEDEMA
  1090. ANGINA
  1091. COMMENT1
  1092. COMMENT2
  1093. \
  1094.